Flutter 状态管理框架对比

社区流行度

名称 发布日期 GH Star Pub Likes Pub points GitHub Pub.dev
Flutter GetX 2020 9k 12728 120/140 地址
Flutter Provider 2019 4.9k 8857 140/140 地址
Flutter Riverpod 2020 4.9k 1858 140/140
Flutter BLoC 2019 10k 5842 140/140 地址

Provider

介绍:

  1. 简洁性:Provider 设计的初衷是为了提供一个更简洁、更直观的状态管理解决方案。
  2. 灵活性:它允许开发者在不同的层级中共享状态,而不需要进行繁琐的传递。
  3. 与 Flutter 集成:Provider 完美地与 Flutter 集成,使得状态的共享和更新变得更为简单。
  4. 响应式编程:Provider 使用 ChangeNotifier 来通知听众状态的变化,从而实现响应式编程。
  5. 依赖注入:Provider 还支持依赖注入,这使得测试和模块化变得更为简单。

原理:

优点:

缺点:

BLoC

介绍

Flutter Bloc 是基于 bloc 设计思想模式在 Flutter 上的实现。Bloc 的全称是 "business logic",意为业务逻辑。其核心思想是尽可能地将页面 UI 与数据逻辑进行解耦,从而提高项目的可读性、可维护性和健壮性。

原理

逻辑拆分:

  1. UI 层 (view):只负责页面的编写,不涉及数据生成。
  2. 数据层 (state):用于存放数据。
  3. 事件层 (event):存放页面的所有事件。
  4. 逻辑处理层 (bloc):处理数据和事件逻辑。Bloc 在源码中进行了封装处理,因此在使用时,event 和 state 必须分开。

优点

解耦业务逻辑,代码模块化,BLoC 块可测性高,单向数据流,关注点分离。

缺点

  1. 学习曲线:对于初学者来说,Bloc 的概念和实现可能需要一些时间来理解和掌握。
  2. 代码冗余:Bloc 模式需要创建多个文件(如事件、状态、Bloc 等),这可能导致代码冗余,尤其是对于简单的功能。
  3. 过度工程化:对于简单的应用或功能,使用 Bloc 可能会感觉过于复杂。

本文作者:Maeiee

本文链接:Flutter 状态管理框架对比

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!